package com.ssy.lingxi.after.sale.entity;

import javax.persistence.*;
import java.io.Serializable;

/**
 * 内部工作流记录DO
 * @author 伍将
 * @date 2020/9/2
 * @version 2.0.0
 */
@Entity
@Table(schema = "public", name = "as_inner_Workflow_record",
        indexes = {@Index(name = "as_inner_Workflow_record_after_sale_id_idx", columnList = "afterSaleId"),
                @Index(name = "as_inner_Workflow_record_after_sale_type_idx", columnList = "afterSaleType"),
                @Index(name = "as_inner_Workflow_record_member_id_idx", columnList = "memberId"),
                @Index(name = "as_inner_Workflow_record_role_id_idx", columnList = "roleId")})
public class InnerWorkflowRecordDO implements Serializable {
    private static final long serialVersionUID = 1292419794874979134L;

    /**
     * 记录id
     */
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "inner_Workflow_record_seq")
    @SequenceGenerator(sequenceName = "as_inner_Workflow_record_seq", name = "inner_Workflow_record_seq", allocationSize = 1)
    private Long id;

    /**
     * 售后id
     */
    @Column(columnDefinition = "int8")
    private Long afterSaleId;

    /**
     * 售后申请类型 1-换货 2-退货 3-维修
     */
    @Column(columnDefinition = "int")
    private Integer afterSaleType;

    /**
     * 用户id
     */
    @Column(columnDefinition = "int8")
    private Long userId;

    /**
     * 会员id
     */
    @Column(columnDefinition = "int8")
    private Long memberId;

    /**
     * 角色id
     */
    @Column(columnDefinition = "int8")
    private Long roleId;

    /**
     * 操作者
     */
    @Column(columnDefinition = "varchar(50)")
    private String operator;

    /**
     * 部门
     */
    @Column(columnDefinition = "varchar(50)")
    private String department;

    /**
     * 职位
     */
    @Column(columnDefinition = "varchar(50)")
    private String jobTitle;

    /**
     * 状态
     */
    @Column(columnDefinition = "varchar(50)")
    private String status;

    /**
     * 状态编码（换货、退货、维修对应的内部状态）
     */
    @Column(columnDefinition = "int default 0")
    private Integer statusCode;

    /**
     * 操作
     */
    @Column(columnDefinition = "varchar(50)")
    private String operate;

    /**
     * 操作时间
     */
    @Column(columnDefinition = "int8")
    private Long operateTime;

    /**
     * 审核意见
     */
    @Column(columnDefinition = "varchar(120)")
    private String opinion;

    public Integer getStatusCode() {
        return statusCode;
    }

    public void setStatusCode(Integer statusCode) {
        this.statusCode = statusCode;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getAfterSaleId() {
        return afterSaleId;
    }

    public void setAfterSaleId(Long afterSaleId) {
        this.afterSaleId = afterSaleId;
    }

    public Integer getAfterSaleType() {
        return afterSaleType;
    }

    public void setAfterSaleType(Integer afterSaleType) {
        this.afterSaleType = afterSaleType;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public Long getRoleId() {
        return roleId;
    }

    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }

    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getJobTitle() {
        return jobTitle;
    }

    public void setJobTitle(String jobTitle) {
        this.jobTitle = jobTitle;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getOperate() {
        return operate;
    }

    public void setOperate(String operate) {
        this.operate = operate;
    }

    public Long getOperateTime() {
        return operateTime;
    }

    public void setOperateTime(Long operateTime) {
        this.operateTime = operateTime;
    }

    public String getOpinion() {
        return opinion;
    }

    public void setOpinion(String opinion) {
        this.opinion = opinion;
    }
}
